package com.hl.card.modular.pack.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.hl.card.common.persistence.model.LogjnDay;
import com.hl.card.common.persistence.model.Recharge;
import com.hl.card.common.persistence.model.User;
import com.hl.card.common.remote.user.RemoteUser;
import com.hl.card.common.util.ResponseData;
import java.io.IOException;
import java.util.Map;

public interface UserDataService  extends IService<User> {
    String getRegCode();
    public LogjnDay updateUserSex(String userId, String sex) throws IOException;
    public User updateUserImg(String userId, String img) throws IOException;
    public Object outSendPhoneCode(String userId, String phoneNum) throws IOException;
    public Object outChangePhone(String userId, String newPhone, String verificode)throws IOException;
    public Object modifyChangePwd(String userId, String sourcePwd, String loginPwd)throws IOException;
    public Object modifyEmail(String userId, String addr, String phone, String code);
    Object updateUserName(String userId, String userName) throws IOException;
    User ssouserToCarPackUser(RemoteUser remoteUser, User user);
    Boolean checkToken(String token);
    Object fraction(String code, Double amount);
    Object fractionV1(String code, Double amount, String userId);
    Object fractionRateV1(String code);
    User checkAndSaveUser(String userid);
    public User selectUser(String userId);
    public ResponseData updateUserPayPasswordById(String userId, String newPassword);
    public  ResponseData saveUserPayPassword(String userId, String userPayPassword);
    User findUserByRedCode(String regCode);
    public boolean checkPayPassword(String userId,String payPassWord);
    Map<String,String> checkUserParentDegree(String regCode);
    Map<String,String> checkUserParentDegreeThree(String regCode);
    Page<User> recommendByRegCode(Page<User> page,String regCode);
    User selectByUserId(String userId);
    boolean checkRegCodeUsedLimitedByUserId(String userId);
    boolean checkRegCodeUsedLimited(String referCode);
    int getRegCodeUsedCountByUserId(String userId);
    int getRegCodeUsedCount(String referCode);
    int getRegCodeRemainCountByUserId(String userId);
    int getRegCodeRemainCount(String referCode);
    int getRegCodeUsedLimitCount();
    Page<User> selectMultiCondition(User user,String beginTime,String endTime);
}